home *** CD-ROM | disk | FTP | other *** search
/ MacPeople 1998 #2 / MACPEOPLE-1998-NO2.ISO / アップル関連 / ARA PS アップデート / モデム用 / aiwa PV-BF288⁄M2 for 2.1 / aiwa PV-BF288_M2 for 2.1 next >
Text File  |  1996-06-26  |  10KB  |  516 lines

  1. !      for AIWA PV-AF288 
  2. !               PV-AF2881
  3. !           PV-BF288
  4. !              PV-BF288M2
  5. !           PV-PF288
  6. !
  7. !    Copyright:     1991-1996 Apple Computer, Inc.    All Rights Reserved.
  8. !
  9. !    revision history:
  10. !        v2.1    as shipped with the ARA 2.1
  11. !
  12. !  'mlts' resource info for this modem:
  13. !    byte 1 == 01 -> modem HAS built-in error correction protocols
  14. !    byte 2 == 01 -> modem HAS built-in data compression protocols
  15. !    byte 3 == 200 -> max number of chars in varstr 7
  16. !    byte 4 == 200 -> max number of chars in varstr 8
  17. !    byte 5 == 200 -> max number of chars in varstr 9
  18. !    
  19. @ORIGINATE
  20. @ANSWER
  21. !
  22. ! ---- Initial modem setup ----
  23. !
  24. ! Set serial port speed depending upon the compression flag
  25. !    A higher rate with compression on to handle expanded data from the modem
  26. !    A lower rate closer to the DCE when compression is off
  27. ifstr 5 1 "0"
  28. serreset 57600, 0, 8, 1
  29. jump 2
  30. !
  31. @LABEL 1
  32. serreset 38400, 0, 8, 1
  33. @LABEL 2
  34. hsreset 0 0 0 0 0 0
  35. settries 0
  36. !
  37. ! Get the modem's attention
  38. !
  39. matchclr
  40. matchstr 1 3 "OK¥13¥10"
  41. write "AT¥13"
  42. matchread 30
  43. !
  44. @LABEL 3
  45. !
  46. ! Setup the modem for the following:
  47. !   Reset to factory settings
  48. !   Standard compression/reliablity
  49. !   Lock serial port speed
  50. !   Serial port hardware handshaking, turn off software handshaking
  51. !   Verbose responces and compresion/protocol results
  52. !   CONNECT returns DCE speed
  53. !   Turn off answering
  54. !   Reset or return to command mode on DTR toggle (optional)
  55. !
  56. matchclr
  57. matchstr 1 4 "OK¥13¥10"
  58. write "ATE0Q0¥¥V2&C1&M5¥¥J0¥¥Q3&D0%C3-N0M1¥13"
  59. matchread 30
  60. inctries
  61. iftries 3 101
  62. !
  63. ! Reset the Modem on setup failure
  64. !
  65. DTRClear
  66. pause 5
  67. DTRSet
  68. flush
  69. jump 3
  70. !
  71. !
  72. @LABEL 4
  73. ! Varstring 4 , reliable link protocol:
  74. !    = 0, handled by computer (ARAP)
  75. !    = 1, handled by modem (PPP)
  76. !    = 2, MNP10 protocol (Cellular protocol, no longer supported)
  77. ifstr 4 5 "1"
  78. ifstr 4 5 "2"
  79. !
  80. ! Varstring 4 == 0, turn off reliable link protocol in modem (ARAP)
  81. matchclr
  82. matchstr 1 9 "OK¥13¥10"
  83. write "AT&M0¥13"
  84. matchread 30
  85. jump 101
  86. !
  87. !
  88. @LABEL 5
  89. ! Varstring 5, compression protocol:
  90. !    = 0, handled by computer 
  91. !    = 1, handled by modem
  92. ifstr 5 9 "1"
  93. !
  94. ! Varstring 5 == 0, turn off compression protocol in modem.
  95. matchclr
  96. matchstr 1 9 "OK¥13¥10"
  97. write "AT%C0¥13"
  98. matchread 30
  99. jump 101
  100. !
  101. !
  102. @LABEL 9
  103. ! Varstring 2, modem speaker:
  104. !    = 0, speaker off
  105. !    = 1, speaker on
  106. ifstr 2 13 "1"
  107. pause 5
  108. matchclr
  109. matchstr 1 13 "OK¥13¥10"
  110. write "ATM0¥13"
  111. matchread 30
  112. jump 101
  113. !
  114. ! Modem ready, wait for a call or originate a call
  115. !
  116. @LABEL 13
  117. ifANSWER 32
  118. !
  119. !
  120. ! ---- Originating a call ----
  121. !
  122. ! Varstring 6, dialing mode:
  123. !    = 0, normal dialing
  124. !    = 1, blind dialing
  125. !    = 2, manual dialing
  126. ifstr 6 17 "1"
  127. ifstr 6 15 "2"
  128. jump 19
  129. !
  130. @LABEL 15
  131. note "Manual dialing initiated" 3
  132. ! Display ASK dialog with message.  Goto label 107 if dialog canceled.
  133. ASK 0 "Pick up the phone & dial ^1.  Hit OK when the phone rings, then hangup." 107
  134. ! X1 to ignore dialtone & busy, D to dial, ¥^ generates data tone
  135. write "ATX1D¥^¥13"
  136. jump 32
  137. !
  138. @LABEL 17
  139. note "Dialing without tone" 3
  140. matchclr
  141. matchstr 1 19 "OK¥13¥10"
  142. ! X1 to ignore dialtone & busy
  143. write "ATX1¥13"
  144. matchread 30
  145. jump 101
  146. !
  147. !
  148. @LABEL 19
  149. ! Display the full dialstring contained in Varstring 1
  150. note "Dialing ^1" 3
  151. !
  152. ! Varstrings 7, 8 and 9, contain dialstring fragments
  153. !    Long phone numbers may need to be split into smaller groups
  154. !    for the modem to use
  155. !
  156. ! Varstring 3:  "p" for pulse & "t" for tone dialing
  157. ! Varstring 8 == blank (dialstring in varstring 7)
  158. ! Varstring 9 == blank (dialstring in varstrings 7 & 8)
  159. ! Otherwise (dialstring in varstrings 7, 8 & 9)
  160. ! ¥^ is added to the dialstring to force the modem to generate a data tone
  161. ifstr 8 27 " "
  162. ifstr 9 24 " "
  163. !
  164. !  Write dialstring in varstrings 7, 8 & 9
  165. matchclr
  166. matchstr 1 21 "OK¥13¥10"
  167. write "ATD^3¥^^7;¥13"
  168. matchread 400
  169. jump 101
  170.  
  171. @LABEL 21
  172. matchclr
  173. matchstr 1 22 "OK¥13¥10"
  174. write "ATD^3^8;¥13"
  175. matchread 400
  176. jump 101
  177.  
  178. @LABEL 22
  179. write "ATD^3^9¥13"
  180. jump 32
  181. !
  182. !
  183. @LABEL 24
  184. !  Write dialstring in varstrings 7 & 8
  185. matchclr
  186. matchstr 1 25 "OK¥13¥10"
  187. write "ATD^3¥^^7;¥13"
  188. matchread 400
  189. jump 101
  190.  
  191. @LABEL 25
  192. write "ATD^3^8¥13"
  193. jump 32
  194. !
  195. @LABEL 27
  196. !  Write dialstring in varstring 7
  197. write "ATD^3¥^^7¥13"
  198. !
  199. !
  200. !    ---- Connection responce ----
  201. !
  202. ! The following section will parse modem responces of two types:
  203. !   1) PROTOCOL: xxx, COMPRESSION: xxx, CONNECT xxx
  204. !   2) CONNECT xxx/ARQ/V42
  205. !
  206. @LABEL 32
  207. matchclr
  208. matchstr  1 81  "RING¥13¥10"
  209. matchstr  2 102 "NO DIALTONE¥13¥10"
  210. matchstr  3 103 "NO CARRIER"
  211. matchstr  4 103 "ERROR¥13¥10"
  212. matchstr  5 104 "BUSY¥13¥10"
  213. matchstr  6 105 "NO ANSWER¥13¥10"
  214. matchstr  7 33  "CONNECT "
  215. matchstr  8 32  "CARRIER"
  216. matchstr  9 40  "CONNECT¥13¥10"
  217. matchstr 10 62  "PROTOCOL: LAP"
  218. matchstr 11 62  "PROTOCOL: MNP"
  219. matchstr 12 62  "PROTOCOL: ALT"
  220. matchstr 13 67  "COMPRESSION: V"
  221. matchstr 14 67  "COMPRESSION: MNP5"
  222. matchstr 15 67  "COMPRESSION: CLASS"
  223. matchread 700
  224. ifANSWER 32
  225. jump 101
  226. !
  227. !  Parse the speed of connect result codes
  228. !  2400 and 4800 have two entries each
  229. !  to distinguish them from 24000 and 48000
  230. !
  231. @LABEL 33
  232. matchclr
  233. matchstr  1 40 "2400¥13"
  234. matchstr  2 40 "2400/"
  235. matchstr  3 41 "4800¥13"
  236. matchstr  4 41 "4800/"
  237. matchstr  5 42 "7200"
  238. matchstr  6 43 "9600"
  239. matchstr  7 44 "12000"
  240. matchstr  8 45 "14400"
  241. matchstr  9 46 "16800"
  242. matchstr 10 47 "19200"
  243. matchstr 11 48 "21600"
  244. matchstr 12 49 "24000"
  245. matchstr 13 50 "26400"
  246. matchstr 14 51 "28800"
  247. matchstr 15 52 "31200"
  248. matchstr 16 53 "33600"
  249. matchstr 17 54 "38400"
  250. matchstr 18 55 "48000"
  251. matchstr 19 56 "56000"
  252. matchstr 20 57 "57600"
  253. matchstr 21 58 "64000"
  254. matchread 30
  255. jump 59
  256. !
  257. ! -- Connection rates --
  258. ! CommunicatingAt informs ARA of the raw modem to modem
  259. ! connection speed.
  260. !
  261. @LABEL 40
  262. note "Communicating at 2400 bps." 2
  263. CommunicatingAt 2400
  264. jump 60
  265. !
  266. @LABEL 41
  267. note "Communicating at 4800 bps." 2
  268. CommunicatingAt 4800
  269. jump 60
  270. !
  271. @LABEL 42
  272. note "Communicating at 7200 bps." 2
  273. CommunicatingAt 7200
  274. jump 60
  275. !
  276. @LABEL 43
  277. note "Communicating at 9600 bps." 2
  278. CommunicatingAt 9600
  279. jump 60
  280. !
  281. @LABEL 44
  282. note "Communicating at 12400 bps." 2
  283. CommunicatingAt 12400
  284. jump 60
  285. !
  286. @LABEL 45
  287. note "Communicating at 14400 bps." 2
  288. CommunicatingAt 14400
  289. jump 60
  290. !
  291. @LABEL 46
  292. note "Communicating at 16800 bps." 2
  293. CommunicatingAt 16800
  294. jump 60
  295. !
  296. @LABEL 47
  297. note "Communicating at 19200 bps." 2
  298. CommunicatingAt 19200
  299. jump 60
  300. !
  301. @LABEL 48
  302. note "Communicating at 21600 bps." 2
  303. CommunicatingAt 21600
  304. jump 60
  305. !
  306. @LABEL 49
  307. note "Communicating at 24000 bps." 2
  308. CommunicatingAt 24000
  309. jump 60
  310. !
  311. @LABEL 50
  312. note "Communicating at 26400 bps." 2
  313. CommunicatingAt 26400
  314. jump 60
  315. !
  316. @LABEL 51
  317. note "Communicating at 28800 bps." 2
  318. CommunicatingAt 28800
  319. jump 60
  320. !
  321. @LABEL 52
  322. note "Communicating at 31200 bps." 2
  323. CommunicatingAt 31200
  324. jump 60
  325. !
  326. @LABEL 53
  327. note "Communicating at 33600 bps." 2
  328. CommunicatingAt 33600
  329. jump 60
  330. !
  331. @LABEL 54
  332. note "Communicating at 38400 bps." 2
  333. CommunicatingAt 38400
  334. jump 60
  335. !
  336. @LABEL 55
  337. note "Communicating at 48000 bps." 2
  338. CommunicatingAt 48000
  339. jump 60
  340. !
  341. @LABEL 56
  342. note "Communicating at 56000 bps." 2
  343. CommunicatingAt 56000
  344. jump 60
  345. !
  346. @LABEL 57
  347. note "Communicating at 57600 bps." 2
  348. CommunicatingAt 57600
  349. jump 60
  350. !
  351. @LABEL 58
  352. note "Communicating at 64000 bps." 2
  353. CommunicatingAt 64000
  354. jump 60
  355. !
  356. @LABEL 59
  357. note "Communicating at an unknown rate." 2
  358. jump 60
  359. !
  360. ! Look for reliablilty and compression results 
  361. ! at the end of the connect result.
  362. !
  363. @LABEL 60
  364. matchclr
  365. matchstr  1 63 "LAPM"
  366. matchstr  2 63 "REL4"
  367. matchstr  3 63 "ARQ"
  368. matchstr  4 68 "REL5"
  369. matchstr  5 68 "COMP¥13"
  370. matchstr  6 63 "V42/"
  371. matchstr  7 63 "V42¥13"
  372. matchstr  8 68 "V42BIS"
  373. matchstr  9 68 "V.42bis"
  374. matchstr 10 63 "MNP¥13"
  375. matchstr 11 68 "MNP5"
  376. matchstr 12 70 "¥10"
  377. matchread 30
  378. jump 70
  379.  
  380. ! -- Modem error correction link negotiation --
  381. ! Userhook 2 informs ARA that a modem-to-modem error
  382. ! correcting protocol has been negotiated
  383. !
  384. !
  385. @LABEL 62
  386. note "Modem Reliable Link Established." 2
  387. userhook 2
  388. jump 32
  389. !
  390. @LABEL 63
  391. note "Modem Reliable Link Established." 2
  392. userhook 2
  393. jump 60
  394. !
  395. ! -- Compression negotiation --
  396. ! Userhook 3 informs ARA that a modem-to-modem compression
  397. ! protocol has been negotiated
  398. !
  399. @LABEL 67
  400. note "Modem Compression Established." 2
  401. userhook 3
  402. jump 32
  403. !
  404. @LABEL 68
  405. note "Modem Compression Established." 2
  406. userhook 3
  407. jump 60
  408. !
  409. !
  410. ! -- Normal exit after "CONNECT" --
  411. !
  412. !  This modem has been setup to do CTS handshaking,
  413. !  and we assume that a CTS handshaking cable is being used.
  414. !
  415. @LABEL 70
  416. ! Turn on CTS handshaking.
  417. HSReset 0 1 0 0 0 0
  418. !
  419. ifANSWER 71
  420. pause 30
  421. @LABEL 71
  422. exit 0
  423. !
  424. !
  425. ! ---- Answer calls ----
  426. !
  427. !    A RING result from the modem and in ANSWERING mode
  428. !    claims the serial port and answering the phone
  429. !
  430. @LABEL 81
  431. ifORIGINATE 32
  432. userhook 1
  433. note "Answering phone..." 2
  434. write "ATA¥13"
  435. jump 32
  436. !
  437. !
  438. ! ---- Hang up and reset modem ----
  439. !
  440. @HANGUP
  441. @LABEL 90
  442. settries 0
  443. HSReset 0 0 0 0 0 0
  444. !
  445. @LABEL 92
  446. !  Escape from data to command mode
  447. matchclr
  448. matchstr 1 96 "OK¥13¥10"
  449. write "+++"
  450. matchread 20
  451. !
  452. @LABEL 94
  453. ! Force a hangup
  454. matchclr
  455. matchstr 1 98 "NO CARRIER¥13¥10"
  456. matchstr 2 98 "OK¥13¥10"
  457. matchstr 3 98 "ERROR¥13¥10"
  458. matchstr 4 98 "0¥13¥10"
  459. write "ATH¥13"
  460. matchread 30
  461. ! Try to get control of the modem by toggling DTR
  462. DTRClear
  463. pause 5
  464. DTRSet
  465. flush
  466. !
  467. ! Try the hangup sequence three times otherwise declare and error
  468. inctries
  469. iftries 3 101
  470. jump 92
  471. !
  472. @LABEL 96
  473. ! Pause between data and command mode
  474. pause 50
  475. jump 94
  476. !
  477. !
  478. @LABEL 98
  479. ! Recall the factory settings
  480. pause 15
  481. matchclr
  482. matchstr 1 99 "OK¥13¥10"
  483. write "AT¥13"
  484. matchread 30
  485. jump 101
  486. !
  487. @LABEL 99
  488. exit 0
  489. !
  490. ! ---- Error messages -----
  491. !
  492. ! Modem Not Responding
  493. @LABEL 101
  494. exit -6019
  495. !
  496. ! No Dial Tone
  497. @LABEL 102
  498. exit -6020
  499. !
  500. ! No Carrier or Error
  501. @LABEL 103
  502. exit -6021
  503. !
  504. ! Busy
  505. @LABEL 104
  506. exit -6022
  507. !
  508. ! No Answer
  509. @LABEL 105
  510. exit -6023
  511. !
  512. ! User Cancellation
  513. @LABEL 107
  514. exit -6002 "User cancelled the connection attempt."